$UPL['CONFIGS']['FILE_MAX_LEN'] ) $error = 'LONG_NAME'; } } } if ( $error == 'none' ) { // save $mysqlDB->query ( "UPDATE uploader_userfiles SET file_name='" . $mysqlDB->escape ( $newname ) . "' WHERE userid={$userid} AND file_id=$file_id" ); // process the file again $file = get_user_file ( $userid, $file_id ); processFile ( $file ); unset($file['file_key'], $file['file_location']); $response = array ( 'result' => 'success', 'file' => $file ); // log if ( $UPL['SETTINGS']['log'] == 2 ) upload_log ( sprintf ( 'Renamed: %s to %s', $old_name, $newname ) ); } else $response = array ( 'result' => 'fail', 'message' => $error ); print json_encode ( $response ); } break; case 'move': { $current_folder_id = (int)gpc ( 'current_folder_id', 'P', 0 ); $target_folder_id = (int)gpc ( 'move_to_folder_id', 'P', 0 ); $file_ids = gpc ( 'file_ids', 'P', array() ); if ( count ( $file_ids ) && $target_folder_id && $target_folder_id != $current_folder_id ) { // verify target folder $target_folder = get_user_folders ( $userid, $target_folder_id ); if ( !count ( $target_folder ) ) { $tpl_message->set ( 'error', $lang_myfiles['folder_invalid'] ); $tpl_uploader->set ( 'content', $tpl_message, 1 ); exit; } // make list of files and query $file_ids = array_values ( $file_ids ); for ( $i = 0, $c = count ( $file_ids ); $i < $c; ++$i ) $file_ids[$i] = (int)$file_ids[$i]; $list = implode ( ',', $file_ids ); $images_only = $target_folder['folder_isgallery'] ? 'AND file_isimage=1' : ''; // move according to target folder $mysqlDB->query ( "UPDATE uploader_userfiles SET folder_id={$target_folder['folder_id']} WHERE userid={$userid} $images_only AND file_id IN ($list)" ); } go_to(UPLOADER_URL.(MOD_REWRITE?'myfiles':'myfiles.php').'?folder_id='.$current_folder_id); } break; case 'delete': { $file_ids = gpc ( 'file_ids', 'P', array() ); $current_folder_id = (int)gpc ( 'current_folder_id', 'P', 0 ); if ( count ( $file_ids ) ) { $file_ids = array_values ( $file_ids ); for ( $i = 0; $i < count ( $file_ids ); ++$i ) $file_ids[$i] = (int)$file_ids[$i]; $list = implode ( ',', $file_ids ); // get location of files in the folder $result = $mysqlDB->query ( "SELECT file_location, file_name FROM uploader_userfiles WHERE userid={$userid} AND file_id IN ($list)" ); if ( $result->numRows() ) { while ( false !== ( $file = $result->fetchRow('assoc') ) ) { delete_file ( $file['file_location'] ); // log delete? if ( $UPL['SETTINGS']['log'] == 2 ) upload_log ( sprintf ( 'Deleted: %s', entities($file['file_name']) ) ); } $result->free(); } // remove files from database $mysqlDB->query ( "DELETE FROM uploader_userfiles WHERE userid={$userid} AND file_id IN ($list)" ); // remove comments on files from database $mysqlDB->query ( "DELETE FROM uploader_usercomments WHERE object_id IN ($list) AND comment_type=" . COMMENT_FILE ); } go_to(UPLOADER_URL.(MOD_REWRITE?'myfiles':'myfiles.php').'?folder_id='.$current_folder_id); } break; case 'get_code': { $file_ids = gpc ( 'file_ids', 'P', array() ); $file_id = (int)gpc ( 'file_id', 'G', 0 ); if ( !count ( $file_ids ) && $file_id ) $file_ids[] = $file_id; if ( count ( $file_ids ) ) { $file_ids = array_values ( $file_ids ); array_walk ( $file_ids, 'intval' ); $list = implode ( ',', $file_ids ); // get files info $files = array(); $result = $mysqlDB->query ( "SELECT * FROM uploader_userfiles WHERE userid={$userid} AND file_id IN($list)" ); if ( $result->numRows() ) { while ( false !== ( $file = $result->fetchRow('assoc') ) ) { $folder_id = $file['folder_id']; processFile ( $file ); $files[] = array ( 'name' => $file['file_name'], 'is_image' => (int)$file['file_isimage'], 'url' => $file['url'], 'url' => $file['file_isimage'] ? $file['fullsize_url'] : $file['url'], 'direct_url' => $file['direct_url'], 'small_thumb_url' => $file['small_thumb_url'] ); } $result->free(); // get folder URL so we can go back $folder = get_user_folders ( $userid, $folder_id ); processFolder ( $folder ); // display $tpl_img = new Template ( TPL_DIR . 'tpl_img.php' ); $tpl_img->set ( 'files', $files ); $tpl_img->set ( 'back_url', $folder['url'] ); $tpl_uploader->set ( 'content', $tpl_img, true ); } else go_to(UPLOADER_URL.(MOD_REWRITE?'myfiles':'myfiles.php')); } else go_to(UPLOADER_URL.(MOD_REWRITE?'myfiles':'myfiles.php')); } break; case 'properties': { $file_id = (int)gpc ( 'file_id', 'GP', 0 ); $file_info = get_user_file ( $userid, $file_id ); $tpl_prop = new Template ( TPL_DIR . 'tpl_properties.php' ); if ( $file_info ) { processFile ( $file_info ); $folder_info = get_user_folders ( $userid, $file_info['folder_id'] ); processFolder ( $folder_info ); $tpl_prop->set ( 'cancel_url', $folder_info['url'] ); if ( $task == 'save' ) { $new_file_info = gpc ( 'file', 'P', array() ); $errors = array(); $insert = array(); if ( $new_file_info ) { if ( isset ( $new_file_info['name'] ) ) { $new_file_info['name'] = trim ( $new_file_info['name'] ); if ( $new_file_info['name'] == '' ) { $errors[] = $lang_myfiles['blank_filename']; $new_file_info['name'] = $file_info['file_name']; } if ( $new_file_info['name'] != $file_info['file_name'] ) $insert['file_name'] = $mysqlDB->escape ( substr ( $new_file_info['name'], 0, 255 ) ); } if ( isset ( $new_file_info['description'] ) ) { $new_file_info['description'] = trim ( $new_file_info['description'] ); $file_info['file_description'] = $insert['file_description'] = $mysqlDB->escape ( substr ( $new_file_info['description'], 0, 255 ) ); } } if ( count ( $errors ) ) { $tpl_error->set ( 'error', $errors ); $tpl_prop->set ( 'error', $tpl_error ); $tpl_prop->set ( 'file', $file_info ); $tpl_uploader->set ( 'content', $tpl_prop, true ); } else { $mysqlDB->query ( "UPDATE uploader_userfiles SET " . $mysqlDB->buildInsertStatement ( $insert ) . " WHERE file_id={$file_info['file_id']} LIMIT 1" ); go_to ( $folder_info['url'] ); } } else { $tpl_prop->set ( 'file', $file_info ); $tpl_uploader->set ( 'content', $tpl_prop, true ); } } else { $tpl_message->set ( 'message', $lang_myfiles['invalid_file'] ); $tpl_uploader->set ( 'content', $tpl_message, true ); } } break; default: { $files_per_page = 20; $folder_id = (int)gpc ( 'folder_id', 'G', 0 ); $sort = trim ( gpc ( 'sort', 'G', 'date_desc' ) ); $current_page = abs ( (int)gpc ( 'page', 'G', 1 ) ); // Get all user folders $user_folders = get_user_folders ( $userid, 0, 1 ); // no folder selected, start at home folder if ( !$folder_id ) $folder_id = $user_folders[0]['folder_id']; $current_folder = array(); $count = count ( $user_folders ); for ( $i = 0; $i < $count; ++$i ) { processFolder ( $user_folders[$i] ); if ( $user_folders[$i]['folder_id'] == $folder_id ) $current_folder = $user_folders[$i]; } // current folder exists? if ( !count ( $current_folder ) ) { $tpl_message->set ( 'message', $lang_myfiles['folder_invalid'] ); $tpl_uploader->set ( 'page_title', $lang_myfiles['title_invalid_folder'] ); $tpl_uploader->set ( 'content', $tpl_message, 1 ); exit; } // Current folder processFolder ( $current_folder ); $current_folder['upload_url'] = UPLOADER_URL . ( MOD_REWRITE ? 'upload' : 'upload.php' ) . '?folder_id=' . $current_folder['folder_id']; $current_folder['tog_perm_url'] = UPLOADER_URL . ( MOD_REWRITE ? 'folders' : 'folders.php' ) . '?action=togperm&folder_id=' . $current_folder['folder_id']; // Get user files in the current folder $total_pages = ceil ( $current_folder['files_count'] / $files_per_page ); if ( $current_page < 1 ) $current_page = 1; if ( $current_page > $total_pages ) $current_page = $total_pages; $start_offset = $current_page > 1 ? ( $current_page - 1 ) * $files_per_page : 0; // sortings if ( !strstr ( $sort, '_' ) ) $sort = 'date_desc'; list ( $sort_by, $sort_order ) = explode ( '_', $sort ); switch ( $sort_by ) { case 'type': $sort_column = 'file_extension'; break; case 'name': $sort_column = 'file_name'; break; case 'size': $sort_column = 'file_size'; break; case 'views': $sort_column = 'file_views'; break; case 'date': default: $sort_column = 'file_id'; $sort_by = 'date'; break; } if ( $sort_order != 'asc' && $sort_order != 'desc' ) $sort_order = 'asc'; // get files and process urls and such $user_files = get_user_files_in_folder ( $userid, $folder_id, $start_offset, $files_per_page, $sort_column, $sort_order ); processFiles ( $user_files ); // usage statistics $storage_used = 0; $result = $mysqlDB->query ( "SELECT SUM(file_size) AS total FROM uploader_userfiles WHERE userid={$userid}" ); if ( $result->numRows() ) { $row = $result->fetchRow('assoc'); $storage_used = $row['total']; $result->free(); } $stats = array ( 'max_storage' => $UPL['USER']['fl_max_storage'] * 1024 * 1024, 'max_bandwidth' => $UPL['USER']['bw_max'] * 1024, 'bandwidth_used' => $UPL['USER']['bw_used'], 'storage_used' => $storage_used, ); $stats['bandwidth_percentage'] = ceil ( $stats['max_bandwidth'] ? ( $stats['bandwidth_used'] / $stats['max_bandwidth'] ) * 100 : 0 ); $stats['storage_percentage'] = ceil ( $stats['max_storage'] ? ( $stats['storage_used'] / $stats['max_storage'] ) * 100 : 0 ); $next_page_url = UPLOADER_URL . ( MOD_REWRITE ? 'myfiles' : 'myfiles.php' ) . '?folder_id=' . $folder_id . '&page=' . ( $current_page + 1 ) . ( '&sort=' . $sort_by . '_' . $sort_order ); $prev_page_url = UPLOADER_URL . ( MOD_REWRITE ? 'myfiles' : 'myfiles.php' ) . '?folder_id=' . $folder_id . '&page=' . ( $current_page - 1 <= 0 ? 1 : $current_page - 1 ) . ( '&sort=' . $sort_by . '_' . $sort_order ); $base_url = UPLOADER_URL . ( MOD_REWRITE ? 'myfiles' : 'myfiles.php' ) . '?folder_id=' . $folder_id; $sort_url = array ( 'type' => $base_url . '&sort=type_' . ( $sort_by == 'type' && $sort_order == 'asc' ? 'desc' : 'asc' ), 'name' => $base_url . '&sort=name_' . ( $sort_by == 'name' && $sort_order == 'asc' ? 'desc' : 'asc' ), 'size' => $base_url . '&sort=size_' . ( $sort_by == 'size' && $sort_order == 'asc' ? 'desc' : 'asc' ), 'date' => $base_url . '&sort=date_' . ( $sort_by == 'date' && $sort_order == 'asc' ? 'desc' : 'asc' ), 'views' => $base_url . '&sort=views_' . ( $sort_by == 'views' && $sort_order == 'asc' ? 'desc' : 'asc' ), ); // Display $tpl_vars = array ( 'user_files' => $user_files, 'user_folders' => $user_folders, 'current_folder' => $current_folder, 'stats' => $stats, 'per_page' => $files_per_page, 'file_start' => $start_offset + 1, 'file_end' => $start_offset + count ( $user_files ), 'next_page_url' => $next_page_url, 'prev_page_url' => $prev_page_url, 'sort_by' => $sort_by, 'sort_order' => $sort_order, 'sort_url' => $sort_url, 'current_page' => $current_page, 'total_pages' => $total_pages, ); $tpl_myfiles->set ( $tpl_vars ); $tpl_uploader->set ( array ( 'content' => &$tpl_myfiles, 'page_title' => $lang_myfiles['title_default'] ), '', 1 ); } } ?>